feat(web): release-centric overview, diff fold, polish#53
Merged
Conversation
Document phased UI goals in docs/ui-roadmap.md. Overview gains a focused-release hero (?release=), row shortcuts to Diff/Runs/Promote with query params, and promoted baseline hints. Diff/Runs/Actions read URL search params; Diff syncs params on compute and shows a prominent policy verdict banner plus link to Promote. E2e script defaults to python3 with FLIGHTDECK_E2E_PYTHON override; extend smoke tests for deep links. Co-authored-by: Gottam Sai Bharath <Gsbreddy@users.noreply.github.com>
Captures adopted principles, merged IA, deferred backend-gated items, and evaluation-scoped policy terminology from product blueprint review. Co-authored-by: Gottam Sai Bharath <Gsbreddy@users.noreply.github.com>
Collapse ledger metrics behind toggle; reorder Overview (promoted first) with Live badges, release filters, and copy-to-clipboard. Diff page puts samples and rollups before collapsible pricing detail. Infra-style polish: solid primary buttons, subtler table hover, page intros with decision litmus. Update roadmap Phase 1–2 status; refresh static bundle and e2e for metrics toggle. Co-authored-by: Gottam Sai Bharath <Gsbreddy@users.noreply.github.com>
Maps change→impact→policy→decision stack to current serve UI, suggested components, illustrative vs actual data contracts, and non-goals. Co-authored-by: Gottam Sai Bharath <Gsbreddy@users.noreply.github.com>
Add OLD vs NEW release twin with env/window context and resolved model line, blocked strip for first policy failure, compact verdict strip, Policy evaluation card with Badge, Decision card with promote CTA on PASS, and rename impact fold to Change impact. Styles + roadmap wireframe note. Rebuild checked-in static bundle. Co-authored-by: Gottam Sai Bharath <Gsbreddy@users.noreply.github.com>
Fallback to execCommand when Clipboard API rejects (headless Chrome). Own DiffPricingExpand open state with a per-result reset key so the fold opens reliably after Compute diff. Add Playwright coverage for copy, mocked diff PASS/FAIL, and pricing expand; rebuild committed static bundle. Co-authored-by: Gottam Sai Bharath <Gsbreddy@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Addresses strict review feedback for the Serve UI work:
setStatusafter unmount; whennavigator.clipboard.writeTextthrows (common in headless Chromium), falls back todocument.execCommand('copy')so operators and e2e see a reliable Copied state.web/e2e/diff-ui.spec.tsfor overview copy, mockedPOST /v1/diffPASS/FAIL (policy panel, blocked strip, promote CTA), and pricing expand (includingdata-testid="diff-per-1k-prices-title").web/src/components/diff/*and fixes pricing fold reliability by owning expand state insideDiffPricingExpandand resetting it viapricingResetKey/diffResultSeqwhen a new diff completes.Static bundle under
src/flightdeck/server/static/rebuilt and committed.Verification
uv run python -m ruff check src testsuv run python -m pytestuv run flightdeck-quickstart-verifycd web && npm ci && npm run build && npm run test:e2e